<?php
class RequisicionsController extends AppController {

    var $name = 'Requisicions';
    var $components = array('Search.Prg');

    public $presetVars = array(
            array('field' => 'empresa', 'type' => 'value'));
    function index() {
        $this->Requisicion->recursive = 0;
        $this->Prg->commonProcess();
        $this->paginate['conditions'] = $this->Requisicion->parseCriteria($this->passedArgs);
        $this->set('requisicions', $this->paginate());
    }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Registro no encontrado', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('requisicion', $this->Requisicion->read(null, $id));
    }

    function add($preOI = null) {
        if (!empty($this->data)) {
            $this->Requisicion->create();
            if ($this->Requisicion->save($this->data)) {
                $sqlInsertRequisicionDetalle="INSERT INTO requisicion_detalles
                    (descripcion, cantidad, precio_parcial, precio_total, requisicion_id, created,modified)
                    (select descripcion, cantidad, precio, total, ".$this->Requisicion->id." ,current_timestamp(),current_timestamp()
                        FROM presupuesto_detalles
                        where presupuesto_id = ".$this->data["Requisicion"]["presupuesto_id"].")";
                $this->Requisicion->query($sqlInsertRequisicionDetalle);
                $this->Session->setFlash(__('El registro se guardo satisfactoriamente', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El registro no pudo ser ingresado debido a un problema. Verifique si no es un registro duplicado', true));
            }
        }
        $presupuesto = $this->Requisicion->Presupuesto->findById($preOI);
        $this->data["Requisicion"]["presupuesto_id"] = $preOI;
        $this->data["Requisicion"]["orden_inspeccion_id"] = $presupuesto["OrdenInspeccion"]["id"];
        $encargados = $this->Requisicion->Encargado->find('list');
        $this->set(compact('presupuesto', 'encargados'));


    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('El registro se actualizo correctamente', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->Requisicion->save($this->data)) {
                $this->Session->setFlash(__('The requisicion has been saved', true));
				$this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('La informacion no se guardo debido a un error interno.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->Requisicion->read(null, $id);
        }
        $ordenInspeccions = $this->Requisicion->OrdenInspeccion->find('list');
        $encargados = $this->Requisicion->Encargado->find('list');
        $this->set(compact('ordenInspeccions', 'encargados'));
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('No se encontro registro', true));
            $this->redirect(array('action'=>'index'));
        }
        if ($this->Requisicion->delete($id)) {
            $this->Session->setFlash(__('Registro eliminado exitosamente', true));
            $this->redirect(array('action'=>'index'));
        }
        $this->Session->setFlash(__('No se pudo eliminar registro', true));
        $this->redirect(array('action' => 'index'));
    }
}
?>